//
//  WebViewController.swift
//  DemoRecord
//
//  Created by 郝佳佳 on 16/10/24.
//  Copyright © 2016年 郝佳佳. All rights reserved.
//

import UIKit
import JavaScriptCore

/*缓存是方便用户的, 存储了此页面的图片, 文字等
 cookie 是发送给服务器用的, 比如登录 cookie 是为了服务器识别用户身份, 购物车界面的 cookie(可能只是商品的 id) 为了服务器知道用户购买了哪些商品*/
@objc protocol  JSProtocal:  JSExport{
    func callChangeColor()
}


class WebViewController: UIViewController , JSProtocal, UIWebViewDelegate{
 
    fileprivate var webView = UIWebView()
    
    override func viewDidLoad() {
        super.viewDidLoad()

        webView.frame = view.frame
        view.addSubview(webView)
        
        webView.loadRequest(URLRequest(url: URL(string: "https://www.teleyi.com")!))
//        loadLocalFile()
    }
    
    func setProprety(){
        //手势缩放
        webView.autoresizingMask = .flexibleWidth
        webView.scalesPageToFit = true;
        webView.isMultipleTouchEnabled = true
        webView.isUserInteractionEnabled = true
    }
    
    
    func jsCallSwift(){
        
        let context = webView.value(forKeyPath: "documentView.webView.mainFrame.javaScriptContext") as? JSContext
        context?.setObject(self, forKeyedSubscript: "change" as (NSCopying & NSObjectProtocol)!)

    }
    
    func callChangeColor(){
        webView.backgroundColor = UIColor.blue
    }

    
}


extension WebViewController{

    func webViewDidFinishLoad(_ webView: UIWebView) {
        // 禁用用户选择
        webView.stringByEvaluatingJavaScript(from: "document.documentElement.style.webkitUserSelect='none';")
        // 禁用长按弹出框
        webView.stringByEvaluatingJavaScript(from: "document.documentElement.style.webkitTouchCallout='none';")
       
        //获取 webView 内容的高度
        webView.frame.size = webView.scrollView.contentSize
    }
    
}


extension WebViewController{
    
    func loadLocalFile(){
        
        /*URL是包含协议头 + 主机地址 +资源路径,如果访问的资源是本机的,那么主机地址可以省略
         使用fileURLWithPath创建出来的URL会自动加上协议头file://
         URLWithString,一般用于网络资源的URL创建;
         本地资源,而且不包含协议头,使用fileURLWithPath创建URL
         当 URL 中不包含汉字时, URLWithString和 fileURLWithPath 都可以成功找到文件
         当包含汉字时, fileURLWithPath 会自动对path中的汉字进行转码,而 URLWithString 不能, 得到 nil
         */
        //直接放在工程目录中
        let path = Bundle.main.path(forResource: "JStoOCtwoIndex.html", ofType: nil)
        let localUrl = URL(fileURLWithPath: path!)
        self.webView.loadRequest(URLRequest(url: localUrl))

        //放在工程目录中的文件夹中
        let path2 = Bundle.main.path(forResource: "百度", ofType: "htm", inDirectory: "html")
        let localUrl2 = URL(string: path2!)
        let localUrl3 = URL(fileURLWithPath: path2!)
        let localUrl4 = Bundle.main.url(forResource: "百度", withExtension: "htm", subdirectory: "html")
        print("\(localUrl2?.absoluteString)")
        print("\(localUrl3.absoluteString)")
        print("\(localUrl4?.absoluteString)")

        let request = URLRequest(url: localUrl3)
        webView.loadRequest(request)

    }
}
